﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;

namespace GameLibrary.Tile
{
    using Interfaces;
    using System.Xml.Linq;
    /// <summary>
    /// 
    /// Represent terrian type.
    /// </summary>
    [Serializable]
    public class TileType
    {
        #region variables

        public readonly string TypeName;

        /// <summary>
        /// The cost of move in or out
        /// </summary>
        public readonly uint BaseMoveCost;

        /// <summary>
        /// The effect of increased build cost
        /// </summary>
        public readonly float BuildCostModifier;

        /// <summary>
        /// Productivity per turn by nature
        /// </summary>
        public readonly uint BaseProduction;

        /// <summary>
        /// Effect on defence for any unit on it
        /// </summary>
        public readonly float DefenceEffect;

        #endregion

        #region constructor

        public TileType(
            string typeName, 
            uint moveCost, 
            float buildCostModifier, 
            uint baseProduction,
            float defenceEffect
            )
        {
            this.TypeName = typeName;
            this.BaseMoveCost = moveCost;
            this.BuildCostModifier = buildCostModifier;
            this.BaseProduction = baseProduction;
            this.DefenceEffect = defenceEffect;
        }

        #endregion
    }
}
